perm filename SC2XB[1,LCS] blob
sn#607340 filedate 1981-08-20 generic text, type T, neo UTF8
101 N=INP(ML)
IZ=ML
ML=ML+1
IF(N.EQ.IBLA)GO TO 101
M=1
JA=-1
C AT THIS POINT IT LOOKS FOR P=PARM, E=END, D=DUPL, C=CONTINUATION, R=RUN.
C ALSO N=NP(NUM. OF PARAMS.)
IF(N.EQ.IPP)GO TO 1
IF(N.EQ.IE)GO TO 2308
IF(N.NE.'R')GO TO 1101
N=INP(ML)
C 'RUN' MAY REPLACE 'END' FOR LAST INST.
IF(N.EQ.'U')CALL RUNIT
CC M=1
LPAR=1
C TYPE 'RD' (P100) FOR RANDOM DEVIATION, 'RR'(P1) FOR RANDOM RESTS.
IF(N.EQ.ID)LPAR=NUMP+1
1205 K=ML
205 K=K+1
IJ=INP(K)
IF(IJ.EQ.IBLA)GO TO 205
IF(IJ.NE.IDOT.AND.IJ.NE.'-'.AND.
1 IJ.NE.IPP.AND.(IJ.LT.'0'.OR.IJ.GT.'9'))CALL ERR(0)
C LOOK FOR ILLEGAL FORMAT WITH RR, RD, DF. (ACCEPTS NUM,DOT,Pn,MINUS)
GO TO 201
C********* NEW NP=NUM. OF PARAMS TO PRINTOUT
1101 IF(N.NE.IEN)GO TO 2205
N=INP(ML)
IF(N.NE.IPP)CALL ERR(0)
ML=ML+1
CALL SCANR
NUMPAR(INSNUM)=VX1
GO TO 1299
C********* NEW NP=NUM. OF PARAMS TO PRINTOUT
2205 IF(N.NE.ID)GO TO 303
CC1101 IF(N.NE.ID)GO TO 303
IF(INP(ML).NE.IF)GO TO 7720
C NEXT FOR 'DF' DUTY FACTOR IN PLACE OF A Pn. (TAKE OUT OLD DF STUFF LATER.)
CC ML=ML+1
C 'M' IS USED AFTER 897 INSTEAD OF 'ML'
LPAR=NUMP+2
C USE P101 FOR DF.
GO TO 1205
303 IF(N.NE.'C')CALL ERR(0)
C NEXT FOR 'CONTINUATION'. AUTOMATICALLY PUSHES UP PARAM NUMS.
IOFSET=IOFSET+1
LPAR=IOLDPR+IOFSET
TYPE 1201,IOFSET
IF(LPAR.GT.NUMP)CALL ERR(6)
2201 IF(INP(ML).EQ.IBLA)GO TO 3201
C TO MOVE POINTER AHEAD. MUST HAVE BLANK AFTER 'C' OR 'CO' OR 'CONT', ETC.
ML=ML+1
GO TO 2201
3201 IZ=ML-1
M=0
GO TO 201
1201 FORMAT(' ↑Y↑Y↑Y↑Y↑Y↑Y REMEMBER ↑Y↑Y↑Y↑Y↑Y PARAMETER OFFSET=',I2)
1 CALL SCANR
IOLDPR=VX1
C SAVE PARAM NUM. FOR POSSIBLE 'CONTINUATION'. BEWARE OF >P30!!!!
LPAR=IOLDPR
C******* IF(LPAR.GT.30)GO TO 201
IF(LPAR.GT.NUMP)GO TO 201
LPAR=LPAR+IOFSET
IF(LPAR.GT.NUMP)CALL ERR(6)
C******* IF(LPAR.GT.30)CALL ERR(6)
201 IJ=LPAR
IF(IJ.GT.NUMP+2)CALL ERR(6)
C************** IF(IJ.GT.32)CALL ERR(6)
CATCHES PARAM. OUT OF RANGE.
IF(QX.GE.0)GO TO 5703
IJ=LPAR+4
C SETS UP PARAM FOR QUAD CALL
V(I)=IJ+INSNUM*10000
V(I+1)=2*ALL
C TEST "ALL" FEATURE HERE!!!!!!!
C X=-13(DEGREES),=-14(X,Y),=-15(CIRCLE FUNCTS),=-16(LINE FUNCTS)
V(I+2)=QX
I=I+3
QX=0.
5703 IAMP=0
IF(IJ.LE.NP(INSNUM))GO TO 897
IF(IJ.LE.NUMP)NP(INSNUM)=IJ
C******* IF(IJ.LT.31)NP(INSNUM)=IJ
CC897 IF(LPAR.EQ.NUMP+2)LPAR=1
897 V(I)=LPAR+INSNUM*10000
C +1=WDCNT, +2=CODE, +3='NM' CCCCC
IJ=I+1
I=I+4
ITMP=0
CODE=0
NFLG=1
ML=IZ+M
C RE=REP R=RHY L=LIT M=MOVE MX=MOVX N=NOTES NU=NUM
C S--L=SUBL S--N=SUBN T=TAP RT=RTAP RL=RLIST RN=RNOTES
C QU=QUADC QUX=QUADX
5702 ML=ML+1
CC IF(ML.GT.72)GO TO 99
N=INP(ML)
IF(N.EQ.IBLA)GO TO 5702
IF(N.EQ.',')GO TO 5702
NL=INP(ML+1)
JA=-1
ISUB=0
IF(N.EQ.IXX)GO TO 2703
IF(N.EQ.'R')GO TO 6702
IF(N.EQ.IF)GO TO 8702
IF(N.EQ.IPP)GO TO 7006
IF(N.EQ.ID)GO TO 3702
IF(N.NE.'C')GO TO 4005
IF(NL.EQ.'U')GO TO 7006
C FOR 'CUTOFF'
4005 JA=0
IF(N.EQ.IEN)GO TO 6005
IF(N.EQ.'M')GO TO 703
IF(N.EQ.'L')GO TO 2720
IF(N.EQ.ISS)GO TO 6703
IF(N.EQ.ITT)GO TO 4018
IF(N.EQ.IQT)GO TO 5720
IF(N.EQ.ISEMI)GO TO 2018
C 7/75 IF(N.EQ.IPP)JA=-1
C FOR ;P5 P3;
7006 CALL SCANR
IF(ISUB.EQ.8)GO TO 8
I=I+JJ
V(IJ+1)=NNUM+SUB
IF(JJ.EQ.1)GO TO 4006
C IF NNUM IS '-2' THEN NOTES ARE PRINTED
IF(NNUM.NE.-2)GO TO 5006
IX=IJ+3
DO 2006 K=2,JJ,3
2006 CALL RANR(VX,K)
C FOR RAN. SELEC. OF NOTES. FINDS HIGHEST NOTE.
5006 IX=IJ+2
DO 6006 K=1,JJ
6006 V(IX+K)=VX(K)
IF(NL.EQ.'U')GO TO 8006
C JUMP FOR 'CUTOFF'
IF(MOD(JJ,3).NE.0)CALL ERR(12)
V(IX+JJ-2)=1.
C ABOVE ENSURES THAT LAST RAND. UNIT REACHES 100% - 5/74 *********
GO TO 3013
CCCC NOW DONE IN 'SCANR' 7/78 4006 IF(JA)VX1=-VX1/100.-9999.
C CHANGES ;P5 P3; TO ;P5 -9999.03; ***** CHECK OUT ON OTHER MACHINES!
CIRC4006 IF(JA)VX1=VX1/100.+9999.
CIRC CHANGES ;P5 P3; TO ;P5 9999.03; ***** CHECK OUT ON OTHER MACHINES!
4006 V(I-1)=VX1
GO TO 3013
8006 V(IJ+1)=-19
C FOR 'CUTOFF N1, N2' -- TO END RAND TIMES TOGETHER.
GO TO 3013
6702 IF(NL.EQ.IE)GO TO 2703
C JUMP IF "REP"
IF(NL.EQ.ITT)GO TO 4018
C JUMP IF "RTAP"
IF(NL.EQ.'R')GO TO 702
C RR=RAN. RESTS
IF(NL.EQ.ID)GO TO 1702
C RD=RAN. DEV. OF P1
CODE=-22
IF(NL.EQ.'L')CODE=-46.0
C JUMP IF "RLIST" (LIST OF RAND SELECTIONS)
IF(NL.NE.IEN)GO TO 1016
C JUMP IF NOT "RNOTES"
JA=0
C FOR SCANR
CODE=-36.
GO TO 1016
702 K=1
C PARAM CODE FOR RAN. RESTS (USES SLOT FOR P1)
GO TO 2702
1702 K=NUMP+1
C PARAM CODE FOR RAN. DEV. (P100 IN BIG VERSION)
GO TO 2702
3702 IF(NL.NE.IF)GO TO 4005
K=NUMP+2
C PARAM CODE FOR DUTY FAC. (P101 IN BIG VERSION)
2702 V(I+1)=V(I-4)
C SHIFT STUFF AROUND
V(I-4)=INSNUM*10000+K
V(I-3)=4.
V(I-2)=-1.
V(I-1)=1.
V(I)=-9999.0-LPAR/100.0
I=I+5
IJ=IJ+5
ML=ML+1
GO TO 5702
6005 CODE=-33
IF(NL.EQ.'A')GO TO 2721
C NUMS, NOTES, NAMES.
IF(NL.NE.'U')GO TO 1016
CODE=-44.
C CODE NUM FOR NUM=-44
1610 JA=-1
GO TO 1016
8702 CODE=-35
IF(NL.EQ.'U')GO TO 1016
ML=ML+1
CALL SCANR
7 V(IJ+1)=CODE+SUB
V(IJ+2)=1.
IF(VX1.GT.99)CALL ERR(4)
C TRAPS F NUMS >99.
V(I)=VX1+200.
CC IF(VX1.GT.15)CALL ERR(4)
C TRAPS F NUMS >15.
CC V(I)=VX1+85.
GO TO 7703
C******** MOVE IS NEXT ***********
703 BW=V(IJ-2)
IC=0
CC DO 7031 K=ML+1,72
DO 7031 K=ML+1,LEND
LP=INP(K)
IF(LP.EQ.KSLA)GO TO 8031
CC IF(INP(K).EQ.ISEMI)GO TO 8031
IF(LP.EQ.IPP)IC=1
C 'MOVP' P7 MOVP/10 3,4.9 5,5.9;MOVES FROM RAN SEL. OF P3,P4 TO P5,P5.
7031 IF(LP.EQ.IXX)IC=-1
C IC=-1 IS FOR MOVX, IC=0 FOR MOVE, IC=1 FOR MOVP.
8031 I=I-1
V(I)=0
X=-9900.-BY
IF(BY.EQ.0)X=-9900.-BG(INSNUM)
IF(BW.EQ.X)GO TO 8005
IF(BW.NE.-9900.-BY)GO TO 1102
V(IJ-2)=X
GO TO 8005
1102 V(IJ)=V(IJ-1)
V(IJ-1)=X
IJ=IJ+1
I=I+1
8005 LP=IJ-1
BW=-9900.-X
ISUB=2
IZ=-1
C ABOVE ARRANGES NECESSARY BG TIME HEADINGS.
4703 GO TO 1299
102 IF(IZ.LT.0)GO TO 2102
C SKIPS NEXT FIRST TIME
BW=V(ICT)+BW
V(I)=-9900.-BW
V(I+1)=V(LP)
V(I+2)=(JJ+2)*ALL
V(I+3)=CODE+SUB
I=I+4
IZ=1
2102 IF(BW.LT.10000.)CALL BGSORT(BW)
C ROUND-OFF NONSENSE
2 VX3=-9900.
VX2=VX3
CALL SCANR
IF(JJ.GT.0)GO TO 5102
JJ=ILIT
C SLASH WILL REPEAT MOVE INPUT -- 6/74
DO 6102 K=1,JJ
6102 VX(K)=VX(K+20)
GO TO 5005
C::::::::::::::: PUT THIS, AND AT 5505, IN SCOR5 ALSO ::::::::::::::
5102 IF(JJ.EQ.4)CALL ERR(9)
C ERROR -- 4 ITEMS IN MOVE IMPOSSIBLE
IF(CODE.EQ.0)GO TO 7102
IF(JJ.GT.4.AND.CODE.GT.-57.)CALL ERR(9)
C CAN'T MIX UP GROUPS OF 3 (STRAIGHT LINE) AND 5 (RANDOM RANGES)
7102 IF(VX3.NE.-9900.)GO TO 3102
IF(VX2.NE.-9900.)GO TO 4102
VX2=VX1
VX1=10000.
4102 VX3=VX2
JJ=3
C 1,2 OR 3 NUMS CAN BE USED IN NON-RAN MOVES.
3102 IF(IZ.GE.0)GO TO 3006
V(IJ)=(JJ+2)*ALL
C WORD COUNT
CODE=-55.
IF(JJ.NE.3)CODE=-57.
IF(NFLG)CODE=CODE-1.
IF(IC)CODE=-59.
C CODE=-56 OR -58 FOR NOTES.
V(IJ+1)=CODE+SUB
IZ=0
3006 IF(NFLG.EQ.1)GO TO 5005
CALL RANR(VX,2)
IF(JJ.NE.3)CALL RANR(VX,4)
C FOR RAN. SELEC. OF NOTES. FINDS HIGHEST NOTE.
5005 IF(IC.LE.0)GO TO 3003
C NEXT FOR 'MOVP', MOVE FROM PARAM TO PARAM.
DO 1003 K=2,JJ
1003 VX(K)=-VX(K)/100.0-19999.0
CIRC1003 VX(K)=VX(K)/100.0+9999.0
C CHANGES PARAM NUMS TO MAGIC NUMS.
3003 ICT=I
ILIT=JJ
C SAVES FOR SLASH REPEAT FEATURE
IJ=IJ+1
DO 1006 K=1,JJ
VX(20+K)=VX(K)
C SAVES FOR SLASH REPEAT FEATURE
1006 V(IJ+K)=VX(K)
I=I+JJ
IJ=I+2
IF(IAMP.EQ.0)GO TO 1299
C*************** MAY 18,71 ***** ALWAYS RESETS TO TIME 0 WHEN MOVE IS USED.
V(I)=-9900.-BY
GO TO 8703
7703 V(IJ)=4.*ALL
8703 I=I+1
GO TO 4773
C FOR SUBROUTINES, -12=NUMS. -11=LETTERS.
6703 CODE=-12.
IF(INP(ML+3).EQ.'L')CODE=-11.
V(IJ)=2.*ALL
V(IJ+1)=CODE+SUB
I=I-1
GO TO 4773
4018 CNT(INSNUM)=-9900.-BY
P(INSNUM)=V(I-4)
CC 6/74 COLGATE JREAD=3
CC 6/74 COLGATE GO TO 4400
1444 IF(READER(JNP))CALL RUNIT
C READS A LINE. IF END OF FILE, JUMPS.
CC443 IF(IFI)REREAD 107,K,IPT(INSNUM,1)
CC IF(IFI.GE.0)REREAD 8001,IPT(INSNUM,1)
443 IF(LN.NE.0)REREAD 107,K,IPT(INSNUM,1)
IF(LN.EQ.0)REREAD 8001,IPT(INSNUM,1)
C NAME OF RHYTHM FILE. (ONLY ONE PER INST.) READS DATA JUST BEFORE RUN
IF(J.EQ.'CONDU')GO TO 444
IF(NL.NE.ITT)GO TO 2338
CODE=-23.
GO TO 1016
2338 I=I-4
GO TO 4773
3018 CNT(KZY)=-9900.
INSNUM=KZY
C TO PUT 'CONDUCT' FILE NAME IN LAST SLOT (KZY) AT 443
GO TO 1444
444 P(KZY)=980000.
GO TO 2308
C CAN'T USE 'TAP' OR 'RTAP' WITH INST KZY IF USING 'CONDUCT'.
C 'REP'
2703 ML=ML+1
VX1=0
VX2=0
VX3=0
IF(N.EQ.IXX)GO TO 2704
INP(ML)=IBLA
INP(ML+1)=IBLA
C WIPES OUT 'EP' IN 'REP'
2704 CALL SCANR
V(IJ)=3.
V(IJ+1)=-66.0
IF(VX1.EQ.32.)VX1=1.
IF(VX1.EQ.0)VX1=LPAR
IF(VX2.EQ.0)VX2=INSNUM-1
V(IJ+2)=VX1+VX2*10000.
KL=VX2
IF(DUR(INSNUM).LT.0)DUR(INSNUM)=DUR(KL)
IF(VX3.EQ.0)GO TO 4773
L=VX3
ML=INSNUM+1
DO 1018 KL=ML,L
IF(LPAR.LE.NP(KL))GO TO 997
IF(LPAR.LT.31)NP(KL)=LPAR
997 IF(DUR(KL))DUR(KL)=DUR(INSNUM)
C TO SET DUR WHEN DUPLICATING NOTES THAT END WITH 'END;;'
V(I)=V(I-4)+10000.
V(I+1)=3.
V(I+2)=-66.
V(I+3)=V(I-1)
1018 I=I+4
GO TO 4773
2018 IF(SUB.EQ.0)GO TO 20181
C NEXT FOR Pn SUBR/ I.E. NOTHING BUT P AND SUB CALL. 7/73
V(IJ+1)=-201.
V(IJ+2)=1.
V(IJ+3)=0
GO TO 7703
20181 V(IJ)=3.
V(IJ+1)=-66.
V(IJ+2)=NW+INSNUM*10000
GO TO 4773
C READS /P5 .3 "ABC" .7 "XYZ"/
8 IF(MOD(JJ,2).NE.0)CALL ERR(12)
IF(LPAR.EQ.2)CALL ERR(13)
V(IJ+1)=-77.+SUB
C SUB HAS SUBR CALL INFO
I=I+1
VX(JJ-1)=1
C FOR RAND. SINGLE LITS.
DO 3722 K=1,JJ,2
V(I)=VX(K)
3722 I=I+1
V(IJ+2)=JJ/2
V(IJ+3)=I
DO 4722 K=2,JJ,2
KN=I
I=I+1
L=VX(K)
DO 6722 KL=L,LEND
IF(INP(KL).EQ.IQT)GO TO 4722
IV(I)=INP(KL)
6722 I=I+1
4722 V(KN)=I-KN-1
V(IJ)=(I-IJ)*ALL
GO TO 4773
2720 QTS=0
2721 ISUB=104
IF(NL.EQ.'A')ISUB=ISUB+1
GO TO 1299
104 IF(ISUB.EQ.104)GO TO 1041
C NEXT FOR INST NAME CHANGES. Pn NAMES/N;
C V LIST= n000n/WDCNT/-89/NUM OF DUPLS/INST NAME/NUM OF LETTERS IN NAME/
C *********** NO 'ALL' OR 'DUPL' FEATURES WITH NAMES **************
V(IJ)=5
V(IJ+1)=-89
CALL SCANR
V(I-1)=VX1
IV(I)=INST(INSNUM)
CXX IV(I+1)=2**(1+(7-LETRS)*7)
I=I+2
GO TO 4773
1041 KL=0
CODE=-88.
DO 6721 K=ML,LEND
L=INP(K)
IF(L.EQ.IBLA)GO TO 6721
JC=K+1
IF(L.EQ.IQT)GO TO 7721
IF(L.EQ.KSLA)GO TO 7232
IF(L.EQ.ISEMI)GO TO 7232
IF(L.NE.IF)GO TO 1040
IF(INP(K+1).NE.'I')GO TO 1040
IF(INP(K+2).NE.IEN)GO TO 1040
IF(INP(K+3).NE.IE)GO TO 1040
C FINDS THE WORD "FINE".
V(I)=-10000.
IF(DUR(INSNUM))DUR(INSNUM)=10000
GO TO 1042
1040 IF(L.EQ.'%')INP(K)=KSLA
IF(L.EQ.'?')INP(K)=ISEMI
IF(L.EQ.'!')INP(K)=','
IF(L.EQ.'#')INP(K)='<'
IF(L.EQ.'&')INP(K)='"'
C THE ABOVE ARE ALL SPECIAL CHAR'S TO AVOID VARIOUS CONFUSIONS.
IF(KL.EQ.0)KL=K
6721 CONTINUE
C FOR REPEAT OF ITEM BY SLASH
C KL IS START OF QUOTE, THEN K IS END -- WHEN NO "S ARE USED.
7232 IF(KL.EQ.0)GO TO 7233
JC=KL
ML=K+1
JD=K-1
NLIT=K-KL
GO TO 8721
7233 DO 7230 KL=ILIT,ILIT+NLIT
V(I)=V(KL)
7230 I=I+1
GO TO 27222
7231 CONTINUE
5720 IAMP=-1
JC=ML+1
C FOR SINGLE 'LIT' ITEMS.
7721 DO 1722 KL=JC+1,LEND
IF(INP(KL).NE.IQT)GO TO 1722
JD=KL-1
ML=KL+1
NLIT=KL-JC
C EXTENT OF LIT ITEM IS FOUND
GO TO 8721
1722 CONTINUE
C CAN'T USE SLASH FOR REPEAT AFTER @Q
8721 V(I)=NLIT
ILIT=I
DO 9721 K=JC,JD
C PUTS ITEM IN "IV" ARRAY
I=I+1
9721 IV(I)=INP(K)
I=I+1
27222 IF(IAMP.EQ.0)GO TO 1299
2722 V(I)=999.
1042 QTS=-1.
CODE=-88.
C 105, -89. FOR LIST OF NAMES FOR INST. NAME CHNGS.
IF(LPAR.EQ.2)CALL ERR(13)
C NO 'LIT' WITH P2!!
V(IJ+1)=CODE+SUB
V(IJ)=(I-IJ+1)*ALL
IJ=IJ+2
V(IJ)=IJ+1
I=I+1
ISUB=1
GO TO 1299
7720 V(I)=INSNUM
V(I+1)=3.
V(I+2)=-67.
ML=ML+4
IF(JRSTA.EQ.0)CALL SCANR
IF(VX1.EQ.0)VX1=INSNUM-1
C DUPL 0; = DUPL PREV. INST. NUM
V(I+3)=VX1
I=I+4
L=VX1
NUMPAR(INSNUM)=NUMPAR(L)
C DUPLICATES NUM. OF PARAMS TO PRINT.
IF(NP(INSNUM).LT.NP(L))NP(INSNUM)=NP(L)
IF(JRSTA.NE.0)GO TO 2173
C GO BACK IF THIS WAS AN AUTOMATIC 'DUPL' WITH A 'RESTART' (DUR IS DIFFERENT)
IF(DUR(INSNUM).LT.0)DUR(INSNUM)=DUR(L)
GO TO 4773
C TYPE 'DUPL N;' N=INST # TO BE DUPLICATED.
142 FORMAT(I,15A5)
1301 FORMAT(15A5)
1302 FORMAT(1X15A5)
300 FORMAT(I,3F,A1)
301 FORMAT(3F,A1)
6 IF(J.NE.'PRECE')GO TO 1341
C 'PRECEDE' WRITES LINES DIRECTLY ON DSK, BEFORE THE WORD 'PLAY;'.
C NO LIMIT TO THE NUMBER OF LINES. LAST LINE (NOT PRINTED) MUST
C BEGIN WITH *. KNP ARRAY (15) IS EQUIV. TO INP .
4341 IF(ITYP)GO TO 5341
TYPE TPALN
ACCEPT 1301,KNP
CALL SHORT(KNP,K)
WRITE(21,1301)(KNP(JD),JD=1,K)
GO TO 6341
5341 IF(LN.EQ.0)GO TO 2341
READ(23,142,END=7341)K,KNP
GO TO 3341
7341 CALL ERR(10)
C GO TO ERROR ROUTINE IF MISSING "*".
STOP
2341 READ(23,1301,END=7341)KNP
3341 CALL SHORT(KNP,K)
C DON'T TYPE TRAILING BLANKS
IF(MX.EQ.22)GO TO 6341
IF(SOS)WRITE(JOUT,1302)(KNP(JD),JD=1,K)
6341 IF(MX.EQ.22)WRITE(JOUT,1302)(KNP(JD),JD=1,K)
IF(MX.EQ.7)WRITE(21)K,(KNP(JD),JD=1,K)
IF(KNP(1).NE.'*')GO TO 8341
C*************** MX='*'
GO TO 2308
8341 IF(MX)WRITE(1,1301)(KNP(JD),JD=1,K)
GO TO 4341
1341 KB=KB+1
IF(JED.GT.0)JED=0
IF(J.EQ.'INSER')GO TO 1340
OTH(KB,1)=VX1*100000.+VX2*100.+VX3
GO TO 340
1340 X=VX1
IF(VX2.NE.0)X=1000000.+VX1*100000.+VX2
OTH(KB,1)=X
GO TO 1338
C ABOVE IS TO PUT INSERT AFTER NOTE # OF A PARTICULAR
C INSTRUMENT. FOR COMMENT AT START, SET BG TIME TO 1,1
C - BEGIN LINE WITH <,END WITH ;
C UP TO 75 CHARACTERS MAY BE TYPED.
340 IF(VX3.NE.2)GO TO 1338
IF(ITYP.GE.0)GO TO 449
IF(READER(JNP))CALL RUNIT
C READS A LINE. IF END OF FILE, JUMPS.
445 OTH(KB,3)=1.
IF(LN.EQ.0)GO TO 447
REREAD 300,K,OTH(KB,2)
GO TO 1447
447 REREAD 301,OTH(KB,2)
1447 IF(JED)GO TO 2308
3445 TYPE TEDIT
ACCEPT 77732,K
CALL LO2UP(K)
IF(K.EQ.IG)JED=-1
IF(J.EQ.'INSER')GO TO 3446
IF(K.NE.'Y')GO TO 2308
IF(JED)GO TO 2308
449 TYPE TPALN
AD 1301,(OTH(KB,JD),JD=2,16)
1446 IF(JED)2446,3445,2446
3446 IF(K.NE.'Y')GO TO 2446
IF(JED)GO TO 2446
1449 TYPE TPALN
ACCEPT 1301,(OTH(KB,JD),JD=2,16)
IF(JED)WRITE(21,1301)(OTH(KB,JD),JD=2,16)
2446 X=OTH(KB,2)
IF(J.NE.'INSER')GO TO 971
IF(VX3.EQ.0)GO TO 971
IF(X.NE.'*')GO TO 6
971 IF(X.EQ.'*')KB=KB-1
C ALLOWS SEVERAL LINES OF 'INSERT' IF ANY 3RD #.
C LAST LINE HAS '*' IN COLUMN 1.
GO TO 2308
C IF NO PARAM NUM IS GIVEN, ALL PARAMS MUST BE TYPED.
C INSERT MAY INCLUDE 10 CHARS(P3-P30),
C P2, A # ONLY. IF MORE THAN 1 PARAM IS TO BE EDITED AND
C P2 IS ONE OF THEM, FIRST EDIT P2 TO DESIRED VALUE,
C CHANGE P2 TO MINUS = THEN INSERT ENTIRE NOTE TO PLAY
C JUST AFTER ORIGINAL NOTE(WHICH WILL BE A REST).
C BX=INST N. Y=NOTE N. Z=PARAM N.